6. 导航接入
6.1 设置导航remote view
/**
* 设置导航remote view
*/
AiNavi.getInstance().setNaviRemoteViewImpl(AbsNaviRemoteView remoteView);
/**
* 导航view
*/
public abstract class AbsNaviRemoteView {
/**
* 显示列表
* @param lstOfPoi poi列表数据
* @param currPage 当前页
* @param currSelectItem 当前选中项
*/
public abstract void showList(List<Poi> lstOfPoi, int currPage, int currSelectItem);
/**
* 显示路况view
* @param bean 路况数据
*/
public abstract void showTrafficView(RoadCondition bean);
/**
* 跳转导航首页
*/
public void jumpNaviIni();
/**
* 显示加载view
* @param loadStatus 加载状态 loading /failed/noresult
*/
public void showLoadView(String loadStatus);
/**
* 显示搜索结果View
* @param searchResult 搜索结果
*/
public void showSearchResultView(SearchResult searchResult);
/**
* 列表数据更新
* @param searchResult 列表数据更新 分词 翻页
*/
public void onListDataUpdate(SearchResult searchResult);
/**
* 显示路径终点view
* @param destPoi 目的地
*/
public void showRouteDestView(Poi destPoi);
/**
* 展示路线选择引导
* @param routeIntent RouteIntent
*/
public void showRoutePathSelectGuide(int routeIntent);
/**
* 隐藏路径选择引导页
*/
public void dismissRoutePathSelectGuide();
/**
* 路线规划倒计时task
* @param opt "remove" "reset"
*/
public void dealRouteCodeDownTask(String opt);
/**
* 显示导航通知view
* @param naviNotification 显示导航通知 -> 详见6.9
*/
public void showNaviNotification(NaviNotification naviNotification);
/**
* 隐藏通知条
* @param naviNotificationType 通知条类型 -> 详见6.9
*/
public void dismissNaviNotification(int naviNotificationType);
/**
* 导航开始时显示提示卡
*/
public void showStartedNaviGuideTips(List<String> datas, LatLng latLng);
/**
* 导致退到后台, 隐藏卡片
*/
public void dismissStartedNaviGuideTips();
/**
* 显示团购view
*/
public void showGroupBuyView(String groupBuyData);
}
6.2 导航列表view翻页通知语音
UI翻页时需要将当前页码的index设置给语音, 语音需要该页码index来保证"上一页/下一页"指令的正确性.
/**
* @param mCurPageIndex 翻页后的页码 index=[0~2]
*/
AiNavi.getInstance().onListPageChanged(mCurPageIndex);
Tips: 默认列表暂时只支持3x3显示, 且index取值从0开始, 所以pageIndex只取0~2范围
6.3 导航列表点击选中
/**
* @param itemIndex 选中项在当前页的index
* @param poi 选中poi
*/
AiNavi.getInstance().onListItemSelected(itemIndex,poi);
6.4 设置导航路线规划或地图模式
/**
* 设置路线规划或模式切换
* @param strategyOrMode 路线规划或模式切换 (来源:AbsNaviRemoteView#showStartedNaviGuideTips)
*/
AiNavi.getInstance().setRoutePlanStrategyOrMapMode(String strategyOrMode);
6.5 跳转到导航首页
/**
* 跳转导航首页
* @param isForceJump 语音切到导航指令
* @param isJumpNaviIndex 跳转导航语音首页
*/
AiNavi.getInstance().jumpNaviIndex(boolean isForceJump, boolean isJumpNaviIndex);
6.6 取消路径规划
/*
* 取消路径规划
*/
AiNavi.getInstance().cancelRoute()
6.7 确认路径选择
/**
* 确认选择路径
*/
AiNavi.getInstance().confirmRoutePath()
6.8 全局退出
/**
* 全局退出
* @param toJumpNaviAppIndex 是否跳转导航app首页
*/
AiNavi.getInstance().onGlobalExit(boolean toJumpNaviAppIndex)
6.9 导航通知使用
//使用步骤:
//1.在收到通知时判断通知类型, 构造相应TTS及显示文本, 然后发起语音通知(AiLit#...#reportNotification).
//2.选中结果回调的使用:
NaviNotificationSelection selection = new NaviNotificationSelection();
selection.setType(NaviNotificationType.CHANGE_STRAGY); //通知类型.参考NaviNotificationType
selection.setOperation(NaviNotificationOperate.CONFIRM); //选中结果:confirm / cancel
selection.setStrategy(strategy); //通知类型 = CHANGE_STRAGY才需要添加.参考NaviRoutePlanStrategy
AiNavi.getInstance().onNaviNotificationSelect(selection);//回调选中结果
//导航通知
class NaviNotification {
/**
* {@link NaviNotificationType}
*/
private int type;
/**
* {@link NaviRoutePlanStrategy}
*/
private String routeStrategy;
}
//导航通知类型
class NaviNotificationType {
int EXIT_NAVI = 1;//退出导航
int CHANGE_STRAGY = 2;//切换路径策略
int CONTINUE_NAVI = 3;//继续导航
int AVOID_JAM_ROUTE = 4;//躲避拥堵路线推荐
}
//路线优化策略
class NaviRoutePlanStrategy {
/**
* 躲避拥堵
**/
String DRIVING_AVOID_CONGESTION = "DrivingAvoidCongestion";
/**
* 避免收费
**/
String DRIVING_SAVE_MONEY = "DrivingSaveMoney";
/**
* 不走高速
*/
String DRIVING_NO_HIGHWAY = "DrivingNoHighWay";
/**
* 高速优先
**/
String DRIVING_HIGHWAY = "DrivingHighWay";
/**
* 默认推荐 多策略算路 最近 最快 推荐
**/
String DRIVING_RECOMMEND = "DrivingRecommend";
/**
* 躲避拥堵&少收费
**/
String DRIVING_AVOID_CONGESTION_SAVE_MONEY = "DrivingAvoidCongestionSaveMoney";
}